查看原文
其他

QakBot银行木马导致大量活动目录用户被锁

代码卫士 2023-01-17


IBM X-Force研究人员最近在多次安全事件响应过程中发现了大量恶意软件诱发的活动目录 (AD) 锁定。数百到数千名AD用户被锁,无法访问公司域名,无法访问端点、公司服务器和网络资产。


AD管理用户以及用户对微软服务器的访问以及启用网络访问的策略和程序。研究人员通过一款现有的银行木马QakBot即PinkSlip将大量AD锁定跟恶意活动关联起来。


X-Force事件响应和情报服务 (IRIS) 响应人员调查了最近发生的QakBot活动潮之后认为大量组织机构已经并将持续遭受因锁定而带来的问题。


QakBot重返经济业务中


研究人员指出,QakBot是一款针对企业旨在榨干银行账户的金融恶意软件。它具有蠕虫能力,能通过共享驱动和可删除媒体自我复制,通过强大的信息窃取功能监控用户的银行活动并最终欺诈大量钱财。


尽管因之前的在线欺诈攻击而为人熟知,但QakBot继续在发展。这是IBM研究人员首次在受影响的组织机构网络中发现恶意软件引发的AD锁定。


尽管QakBot包含蠕虫功能,但从其它方面来讲它就是一款银行木马。QakBot是一个模块化的多线程恶意软件,它的多个组件旨在窃取在线银行凭证、执行后门功能、SOCKS代理、广泛的反研究能力以及扰乱杀毒工具。除了逃避技术外,QakBot当前的变体如获管理员权限,就能禁用在端点运行的安全软件。


总体来讲,QakBot的检测规避机制跟其它同类恶意软件相比并不常见。一旦感染新端点,它就会快速改变让杀毒系统一直猜测。它会对恶意软件文件作出微小改变,而在另外一些情况下,它会重新编译整个代码,让它看似不可辨别。


QakBot释放器的运行


跟其它同类恶意软件类似,QakBot木马会通过释放器被引到受感染的端点。这个释放器主要是使用延后执行来规避检测。它到达目标端点然后停顿10到15分钟再开展进一步的行动,以此来躲避可能尝试在其达到后进行分析的沙箱。然后,这个释放器就会打开explorer.exe实例并将QakBot DLL注入到进程中。


部署之后,释放器就会损坏其原始文件。它使用ping.exe来触发在一个循环中重复六次的ping命令。


C:\Windows\System32\cmd.exe” /c ping.exe -n 6 127.0.0.1 & type “C:\Windows\System32\autoconv.exe” à “C:\Users\UserName\Desktop\7a172.exe


当ping完成后,原始的QakBot释放器内容会被合法的Windows autoconv.exe命令所覆写。(Autoconv.exe将文件配置表 (FAT) 和FAT32转换为NTFS文件系统中,从而在Autochk运行后导致现有文件和目录在启动时保持完整。)QakBot的JavaScript下载器片段如下:




图表1:QakBot下载器脚本


在以上例子中,提取QakBot有效负载的下载位置会使用字符代码略微进行混淆。来自这个样本的下载器尝试连接到如下三个更新服务器中:


1. projects[.]montgomerytech[.]com

2. n[.]abcwd0.seed.fastsecureservers[.]com

3. css.kbaf.myzen[.]co[.]uk


我们运行样本时,如下的下载服务器会通过大量ASCII十六进制码响应即QakBot有效负载:projects[.]montgomerytech[.]com/TealeafTarget.php。




图表2:QakBot混淆的有效负载


受感染设备上收到有效负载后不久,随机命名的QakBot副本就会部署到系统上,跟合法的autoconv.exe一样。


为了通过在运行中创建的集合域名跟受感染机器通信,QakBot同时使用域名生成算法 (DGA) 和硬编码的C&C服务器清单。我们在样本中观察到的硬编码C&C服务器见本文底部。


持续性机制


QakBot因在受感染机器上持续存在的能力而臭名昭著。加上AD锁定能力,在企业环境中检测并删除变得尤其让人沮丧。


为了在系统重启和删除之后保持持续性,QakBot通过一个注册表启动开关按键和计划任务在目标系统上创建持续性机制。它创建 “\CurrentVersion\Run”注册表项,在每次运行操作系统后自动自我启动。QakBot创建的示例启动开关按键如下:


“HKCU\Software\Microsoft\Windows\CurrentVersion\Run\xyhz,” 指向“C:\Users\UserName\AppData\Roaming\Microsoft\Graroaojr\graroaoj.exe”。


QakBot通过”schtasks.exe”添加了另外的持续性层并创建循环的、命名的计划任务按定时间隔自我运行并确保自己并未被禁用或删除。




图表3:QakBot进程树显示的是schetasks.exe和ping用法


QakBot一般会创建两种命名计划任务。以一种会定期推出QakBot。


C:\Windows\system32\schtasks.exe” /create /tn {1F289CDD-BD80-4732-825C-4D2D43DA75AB}/tr “\”C:\Users\UserNameUserName\AppData\Roaming\Microsoft\Graroaojr\graroaoj.exe\”” /sc HOURLY /mo 7 /F


第二种计划任务推出基于有.wpl扩展的下载器的单独JavaScript:


C:\Windows\system32\schtasks.exe” /create /tn{E6AA46C7-AE96-4859-A21C-5E01C0866746} /tr “cmd.exe /C \”start /MIN C:\Windows\system32\cscript.exe//E:javascript \”C:\Users\UserName\AppData\Local\Microsoft\graroaoj.wpl\”\”” /sc WEEKLY /D TUE /ST 12:00:00 /F


常驻QakBot活动目录锁定


在观察QakBot对AD域名的影响时,研究人员发现恶意软件执行了下列三项活动:


1.快速锁定数百个至数千个账户

2.自动化登录尝试,可通过并不存在的账户实现(即argo、operator、administrator、user、prof、owner、usuario、admin、HP_Administrator、HP_Owner、Compaq_Owner、Compaq_Administrator等),以及

3.将恶意可执行文件部署到网络共享并将它们注册为服务


猜测用户凭证以锁定


为了传播到受影响网络中,QakBot能够通过C&C服务器的远程命令横向移动,自动和按需皆可。为了激活这种能力,攻击者启动了恶意软件的命令 “13”也即QakBot早期变体中的 ”nbscan”。


为了访问并感染网络中的其它设备,QakBot还会使用受影响用户的凭证以及该用户的登录和域凭证,前提是后者可从域控制器中获得。QakBot可能会收集受影响设备的用户名并借此试图登录到域名中的其它设备。如果QakBot未成功从域名控制器和目标设备中枚举用户名,那么它就会使用一个硬编码的用户名列表:




图表4:QakBot的硬编码用户名


为在网络中验证自己,QakBot会尝试匹配用户名和多个密码。我们已发现三种旨在破坏弱密码或默认密码的密码计划:


1.用户名和密码相同(例如用户名是administrator,密码也是administrator)

2.密码是倒写的用户名(例如用户名是administrator,密码是rotartsinimda)

3.用户名通过字典攻击模式中的多个硬编码密码进行了测试



图表5:用于字典攻击模式的QakBot硬编码密码字符串


如下是一个堆栈框架的汇编,尝试通过从域名控制器获取的用户名连接到目标设备的IPC$管理员分享:



图表6:尝试连接到IPC$管理员共享


IPC$是尽可由管理员访问的常见隐藏网络共享的一部分。攻击者可能会结合管理员级别的凭证一起使用来通过SMB远程访问网络系统。通常来讲,它的目的是使用远程过程调用、通过远程执行转移文件和运行被转移的二进制,从而有助于QakBot运行其恶意代码。


一旦恶意软件成功地连接到目标设备IPC$管理员共享,它就会判断是否可本地创建一个服务。如能,QakBot会枚举目标计算机的网络共享,随后尝试在其中一个共享中释放一个副本。一旦该恶意软件的副本被释放,它就会在目标设备中创建并启动服务来执行它。


在某些域名配置中,这款恶意软件访问目标设备的字典攻击会导致多次验证尝试失败,从而触发账户锁定。




图表7:账户锁定记录


进入银行木马模式


QakBot的主要目的是控制企业的银行账户,也有可能还包括工作时浏览在线银行账户的受感染员工的银行账户。


QakBot执行浏览器中间人功能,从而将被注入的恶意代码插入到在线银行会话中。QakBot不会将恶意代码放在配置文件里面,而是会在运行过程中将这些恶意脚本提取出来,格式如下:


hxxps://[AttackerDomain/wbj/br/content/TargetBankName/TargetBankName.js


这些脚本通常是指互联网注入,因为它们用于控制受感染用户在银行网站上看到的视觉内容。如下代码片段被作者打上 “WIRE” 的标签,似乎是在检查 “To enroll in the” 是否可见于目标银行的电汇页。


这是一种非常典型的木马行为,旨在判断出从哪里开始插入恶意代码来修改页面并匹配攻击者所计划的欺诈性汇票。在这个例子中很容易看出,QakBot针对企业银行服务发动攻击并打算到达被攻陷账户的“更改地址”页面。




图表8:QakBot互联网注入针对企业银行账户


来自同一个互联网注入脚本的片段旨在收集显示在在线银行账户中的个人信息,方法是查询包含敏感详情如出生日期和社保号码的名称的页面文档对象模型(DOM)。




图表9:QakBot互联网注入收集受害者个人可识别信息


信息窃取模块


恶意软件的操作人员一般用QakBot跟进用户触发的银行会话。QakBot的偷盗机制可通过它窃取的信息包括:


* 用户按键

* 缓存凭证

* 数字证书

* HTTP(S) 会话验证数据

* Cookie,包括验证口令和Flash cookie,以及

* FTP和POP3凭证


QakBot提取的且被发送到受犯罪分子控制的FTP服务器的数据包括:


* 系统信息

* IP地址

* DNS名称

* 主机名称

* 用户名

* 域名

* 用户权限

* OS版本

* 网络界面(地址、子网掩码和状态)

* 所安装的软件

* 来自端点受保护存储的凭证

* 账户名称和网络服务器凭证

* 连接类型

* POP3用户名、服务器和密码;以及

* SMTP服务器和邮件地址


典型的在线传播


QakBot通常通过利用工具包和针对员工而非网络邮件用户的垃圾信息进行传播。一旦进入网络内部,QakBot就会以蠕虫身份运行。从规模上来看,研究人员表示最近发生的QakBot僵尸网络已成功利用了超过5.4万台受感染计算机。


QakBot的目标


QakBot发现于2009年,一直以来被认为是最先进的银行木马之一。它也是首个旨在专门针对企业银行部门的木马。目前,QakBot主要集中于美国企业银行服务,包括财政部、企业银行和商业银行。X-Force IRIS受访者在医药和技术行业也见到了QakBot攻击。




图表10:目标类型当前的QakBot配置(来源:IBM X-Force)


研究人员指出,QakBot的操作人员一直在升级恶意软件代码、持续性机制、杀毒和反研究能力。随着它的发展,攻击目标还包括医疗行业和教育行业。


研究人员认为QakBot的幕后黑手是来自东欧的封闭性有组织的网络犯罪团伙。


全球视角


从全球来看,QakBot主要集中于商业行业,而从它的活动期限来看,它是在十大最活跃恶意软件家族中垫底。在过去的五年中,其幕后黑手在网络犯罪圈子时而复出时而淡出,很可能是为了将攻击规模最小化以免引起执法部门的注意。




图表11:最流行的金融性恶意软件家族(来源:IBM X-Force)


缓解QakBot感染


为了检测诸如QakBot等的网络威胁,银行和服务提供商应该使用自适应的恶意软件检测解决方案,它提供实时欺诈监控技术并解决威胁的不断发展问题。


要让QakBot远离员工端点,首先要提高网络安全意识,因为这款恶意软件可能来自受感染网站或通过邮件附件传播。用户可通过践行浏览清洁、禁用网络广告、过滤通过邮件而来的宏执行以及其他安全最佳实践来保护自己。


保持组织机构所有操作系统都是最新版本、经常更新所使用的程序并删除那些不再使用的程序起着重要作用。为了缓解网络中的QakBot活动,确保域账户配置为满足执行工作任务所需的最小权限。


为安全起见,组织机构也可以创建一个随机的域名管理账户并确保它直接向安全信息和事件管理 (SIEM) 系统报告。特殊响应账户能够让安全员工在网络用户被锁后恢复服务并判断攻击来源。


最后,尽可能阻止工作站到工作站的通信,将恶意软件挡在门外并将其驱赶到中央检测系统会快速提取的领域。


IoC(攻陷指标)


恶意软件释放器MD5:


2C5901F06E6211BB7F6D22AB3376C22C

A1593E2DC521EA8F66BB727B4725EC2C


恶意软件样本MD5:


8a3ab5d3fa3644ec1829e7825b0a22a3

08BACFFCC1E4DF896670047790373497

847BCDB4F5C2EBA96E8943430C4402C8


QakBot硬编码的C2服务器:


96[.]67[.]244[.]225:443

96[.]3[.]92[.]39:443

173[.]31[.]254[.]105:443

192[.]158[.]217[.]32:993

181[.]165[.]242[.]18:443

90[.]211[.]106[.]62:443

70[.]97[.]146[.]196:443

50[.]124[.]113[.]135:443

97[.]64[.]195[.]106:993

47[.]21[.]79[.]34:443

47[.]21[.]79[.]34:465

124[.]168[.]105[.]52:2222

173[.]71[.]99[.]106:993

73[.]166[.]94[.]110:443

89[.]43[.]179[.]209:443

180[.]93[.]148[.]41:443

68[.]115[.]254[.]146:443

73[.]166[.]43[.]103:443

209[.]136[.]9[.]64:443

76[.]17[.]137[.]223:443

47[.]21[.]79[.]34:995

74[.]65[.]227[.]38:443

24[.]91[.]39[.]131:2222

74[.]101[.]41[.]97:443

50[.]134[.]209[.]66:443

24[.]45[.]150[.]163:443

24[.]123[.]151[.]58:443

76[.]8[.]200[.]134:443

105[.]227[.]251[.]148:443

132[.]206[.]59[.]132:443

211[.]27[.]18[.]233:995

174[.]51[.]185[.]121:465

24[.]184[.]200[.]177:2222

96[.]67[.]244[.]225:443

184[.]90[.]203[.]138:995

68[.]53[.]54[.]125:443

98[.]113[.]137[.]220:443

86[.]27[.]41[.]234:443

91[.]93[.]4[.]222:443

50[.]101[.]245[.]7:2222



本文由360代码卫士编译,不代表360观点,转载请注明“转自360代码卫士www.codesafe.cn”。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存